package com.glebusheg.data 
{
	import com.glebusheg.debug.Console;

	/**
	 * ...
	 * @author Gleb Volkov
	 */
	public class Item 
	{
		/**
		 * @private
		 * Идентификатор и Тип предмета.
		 */
		private var _name:String;
		private var _type:String = ItemType.UNKNOWN;
		
		/**
		 * @private
		 * Неигровая информация о предмете (название, описание, иконка)
		 */
		private var _info:ItemInfo = new ItemInfo();
		
		public function Item(name:String, type:String) 
		{
			_name = name;
			initializeType(type);
		}
		
		/**
		 * @private
		 * Проверить существует ли тип, иначе установить UNKNOWN
		 */
		private function initializeType(type:String):void
		{
			_type = type;
			
			switch(type)
			{
				case ItemType.CLOTHES:
					break;
				default:
					_type = ItemType.UNKNOWN;
					Console.warn("Неверный тип предмета item.type='" + type + "'");
					break;
			}
		}
		
		public function parse(xml:XML):void
		{
			_info.parse(xml.info[0]);
		}
		
		/**
		 * Идентификатор Айтема (имя).
		 *
		 * @default null
		 */
		public function get name():String
		{
			return _name;
		}
		
		/**
		 * Тип Айтема.
		 * Тип описывает заданный минимум описания и возможную функциональность Айтема.
		 *
		 * @default ItemType.UNKNOWN
		 * @see data.ItemType
		 */
		public function get type():String
		{
			return _type;
		}
		
		/**
		 * Информация (название, описание, иконка)
		 * 
		 * @see data.ItemInfo
		 */
		public function get info():ItemInfo
		{
			return _info;
		}
	}

}